The most efficient method to find the performance of an application on a storage system is evaluating the application by running on a platform of interest. However, migrating the application to a new environment and testing for the performance is a non-trivial and extremely daunting task. It requires a lot of effort to set it up and subsequently fine tune it. Another close approach is running the synthetic workload generated by input-output subsystem and characterization tools. The synthetic workloads have access pattern very similar to that of the applications. Though this approach is relatively easier but, in most cases, does not reproduce the characteristics of the applications or the workload accurately.
The use of trace for input-output profiling has been there for many years now but its usage has found traction in recent years for predicting the performance in a cloud based environment
Prior illustrates creating an artificial workload to predict the performance of input-output intensive distributed enterprise applications, but the most significant issue with this approach is that the actual application workload is not run or tested in the target environment. Even though the approach does not require replicating the database on target architecture, but still it remains an extremely complicated procedure.
Further, prior art also illustrates predicting the performance of web application on cloud based environment, but even though such prior art is capable of predicting the end-to-end performance of multiple resources with high accuracy, it remains a huge challenge for them to hold good for high concurrency i.e large number of users.
Thereby, predicting the performance of input-output intensive distributed enterprise application on multiple storage devices without deploying the application and the complete database in the target environment is still considered as one of the biggest challenges of the technical domain.